home *** CD-ROM | disk | FTP | other *** search
/ BMUG PD-ROM 1995 Fall / PD-ROM F95.toast / Programming / Programming Languages / UCB Logo 3.0 ƒ / sources / MiniEdit Folder / mini.file.c next >
Encoding:
C/C++ Source or Header  |  1992-07-29  |  1.6 KB  |  91 lines  |  [TEXT/ttxt]

  1. /*********************************************************************
  2.  
  3.     mini.file.c
  4.     
  5.     file functions for Miniedit
  6.     
  7. *********************************************************************/
  8.  
  9. /*
  10. #include <MacTypes.h>
  11. #include <FileMgr.h>
  12. #include <TextEdit.h>
  13. #include <WindowMgr.h>
  14. */
  15. #include "MiniEdit.h"
  16.  
  17. int    vRef;
  18.  
  19. extern TEHandle  TEH;
  20. extern WindowPtr myWindow;
  21.  
  22. SetUpFile()
  23. {
  24.     Str255 name;
  25.     int refNum;
  26.     
  27.     GetVol(name, &vRef);
  28.     if (FSOpen("\ptemp.txt", vRef, &refNum)==noErr) {
  29.         ReadFile( refNum, TEH );
  30.         FSClose(refNum);
  31.         ShowWindow( myWindow );
  32.         SelectWindow( myWindow );
  33.         TESetSelect(0, 0, TEH);
  34.         ShowSelect();
  35.     }
  36.     else SysBeep(100);
  37. }
  38.  
  39. int DoFile(item)
  40. int        item;
  41. {
  42.     if (item == fmQuit) ExitToShell();
  43.     return(1);
  44. }
  45.  
  46. SaveFile()
  47. {
  48.     int refNum;
  49.     
  50.     if (FSOpen("\ptemp.txt", vRef, &refNum )==noErr) {
  51.         WriteFile(refNum, (*(**TEH).hText), (long)(**TEH).teLength);
  52.         FSClose( refNum );
  53.         return(1);
  54.     }
  55.     else SysBeep(100);
  56. }
  57.  
  58. WriteFile( refNum, p, num )
  59. int        refNum;
  60. char    *p;
  61. long    num;
  62. {
  63.     long filePos;
  64.     int io;            /*     a real application would want to check 
  65.                         this return code for failures */
  66.     io=FSWrite( refNum, &num, p );
  67.     if (io != noErr) SysBeep(100);
  68.     io = GetFPos( refNum, &filePos );
  69.     if (io != noErr) SysBeep(100);
  70.     io = SetEOF( refNum, filePos );
  71.     if (io != noErr) SysBeep(100);
  72. }
  73.  
  74. ReadFile( refNum, textH )
  75. int        refNum;
  76. TEHandle textH;
  77. {
  78.     char    buffer[256];
  79.     long    count;
  80.     int        io;
  81.     
  82.     TESetSelect(0, (**textH).teLength, textH);
  83.     TEDelete( textH );
  84.     do {
  85.         count = 256;
  86.         io = FSRead( refNum, &count, &buffer );
  87.         TEInsert( &buffer, count, textH );
  88.     } while (io==noErr);
  89.     
  90.     return( io==eofErr );
  91. }